package com.pig.mapper;

import java.util.List;
import java.util.Map;

import com.pig.aop.OperationLogger;
import com.pig.entity.AccountLogEntity;
import com.pig.entity.AccountUserInfoEntity;
import com.pig.file.Image;
import com.pig.service.AccountUserService;
import org.apache.ibatis.annotations.Param;

import com.pig.entity.AccountUserEntity;
import org.springframework.stereotype.Repository;

@Repository
public interface AccountUserMapper {
	/**                         没有bug 神芝 超级键盘
	 * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
	 * │Esc│   │ F1│ F2│ F3│ F4│ │ F5│ F6│ F7│ F8│ │ F9│F10│F11│F12│ │P/S│S L│P/B│  ┌┐    ┌┐    ┌┐
	 * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘  └┘    └┘    └┘
	 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
	 * │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ BacSp │ │Ins│Hom│PUp│ │N L│ / │ * │ - │
	 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
	 * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ | \ │ │Del│End│PDn│ │ 7 │ 8 │ 9 │   │
	 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │
	 * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter  │               │ 4 │ 5 │ 6 │   │
	 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤     ┌───┐     ├───┼───┼───┼───┤
	 * │ Shift  │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│  Shift   │     │ ↑ │     │ 1 │ 2 │ 3 │   │
	 * ├─────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ E││
	 * │ Ctrl│    │Alt │         Space         │ Alt│    │    │Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │←─┘│
	 * └─────┴────┴────┴───────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
	 */


	/**
	 * 用户登录 查询
	 */
	public AccountUserEntity login(@Param("accountName") String accountName, @Param("accountPassword") String accountPassword, @Param("accountState") Integer accountState);

	/**
	 * 查询日志
	 */
	public List<AccountLogEntity> queryLog(@Param("accountId") Integer accountId);


	/**
	 * 查询用户是否存在  && 查询余额
	 */
	public AccountUserEntity nameIs(AccountUserEntity accountUserEntity);

    /**
     * 查询用户是否存在
     */
    public AccountUserEntity selectName(@Param("accountName") String accountName) ;


    /**
	 * 添加用户日志
	 */
	public boolean insertLog(AccountLogEntity accountUserEntity);


	/**
	 * 转出 & 取錢
	 */

	public boolean out(@Param("accountName") String accountName,@Param("accountBalabce") Double accountBalabce);

	/**
	 * 转入  &存錢
	 */
	public boolean in(@Param("accountInName") String accountInName,@Param("accountBalabce") Double accountBalabce);


	/**
	 * 修改密码
	 * @param accountName
	 * @param accountPassword
	 * @return
	 */
	public boolean updatePassword(@Param("accountName") String accountName,@Param("accountPassword") String accountPassword) ;

	/**
	 * 注册用户
	 * @param accountUserEntity
	 * @return
	 */
	public boolean register(AccountUserEntity accountUserEntity);

	/**
	 * 注册用户信息表
	 */
	public int registerInfo(AccountUserInfoEntity accountUserInfoEntity);


	/**
	 * 修改图片
	 */
	public int updateImage(Image image);
}
